package com.leoman.statData.service;

import com.leoman.common.service.GenericManager;
import com.leoman.post.entity.PostTypeData;
import com.leoman.resources.entity.GameResource;
import com.leoman.resources.entity.ResourceData;
import com.leoman.resources.entity.ResourceDetailData;
import com.leoman.welfare.entity.Welfare;
import com.leoman.welfare.entity.WelfareData;
import com.leoman.work.entity.WorkData;
import org.springframework.data.domain.Page;

/**
 * 数据统计Service
 * Created by 涂奕恒 on 2016/12/15 0022.
 */
public interface StatDataService extends GenericManager<WorkData> {

    // 作品统计列表（分页）
    Page<WorkData> pageWorkList(Integer type, String name, Integer pageNum, Integer pageSize);

    // 作品分集统计列表（分页）
    Page<WorkData> pageWorkDetailList(Long workId, Integer type, Integer pageNum, Integer pageSize);

    // 作品分集统计列表（分页）
    Page<WorkData> pageWorkDetailListPlus(Long workId, Long detailId, String startDate, String endDate, Integer pageNum, Integer pageSize);

    // 帖子统计列表（分页）
    Page<PostTypeData> pageByParams(String typeName, Integer pageNum, Integer pageSize);

    // 帖子详情统计列表（分页）
    Page<PostTypeData> pagePostList(Long categoryId, String startDate, String endDate, Integer pageNum, Integer pageSize);

    // 资源统计列表（分页）
    Page<ResourceData> pageResourceList(Integer type, Long resourceId, String resourceName, String startDate, String endDate, Integer pageNum, Integer pageSize);

    // 游戏详情统计列表（分页）
    Page<ResourceData> pageResourceList(Integer type, Long resourceId, Integer pageNum, Integer pageSize);

    // 游戏详情统计列表（分页）
    Page<ResourceDetailData> pageGameList(Long resourceId, String nickName, Integer status, Integer pageNum, Integer pageSize);

    // 查询游戏详情
    GameResource findGameByResourceId(Long resourceId);

    // 查询福利详情
    Welfare findWelfareByWelfareId(Long welfareId);

    // 福利统计列表（分页）
    Page<WelfareData> pageWelfareList(Long welfareId, String resourceName,String startDate, String endDate, Integer pageNum, Integer pageSize);

    // 所有资源统计列表（分页）
    Page<ResourceData> pageResourceList(Integer type, Integer pageNum, Integer pageSize);
}
